package Behavioral.Strategy;

//环境类
public class Context {

    private Strategy strategy;

    public Context(Strategy strategy) {
        this.strategy = strategy;
    }

//    可以传入参数，以用于供Strategy调用
//    context和strategy的通信问题
//    将数据放在context暴露的方法的参数中,逐个传给strategy。使得strategy和context解耦，但是可能发送strategy不需要的数据
//    让context作为参数传递给strategy,strategy再显示向Context请求数据。或者，Strategy存储对Context的引用。这样，Context和Strategy会更紧密耦合。
    public void strategyMethod(){
        strategy.strategyMethod();
    }
}
